A data storage array (herein also referred to as a “disk storage array”, “disk array”, or simply an “array”) is a collection of physical data storage devices such as hard disk drives (also referred to simply as “disks” or “drives”) operating together logically as a unified storage device designed to store large quantities of data. Storage arrays typically include one or more storage array processors (SPs), for handling input/output (I/O) requests and management type requests. An SP is the controller for and primary interface to the storage array.
Storage systems may include one or more disk arrays. Disk arrays may use a variety of storage devices with various characteristics for providing storage. Each storage array may logically operate as a unified storage device. While such organization generally allows for a homogenous view of the storage devices, it is sometime useful to organize the various storage devices into tiers or classes of storage. A tier is generally delineated by differences in at least one of the four following attributes: price, performance, capacity and function. For example, tier 1 storage devices may be comprised of storage media that is very fast, such as solid state (e.g., flash) memory. Tier 2 storage devices may be comprised of storage media that are slower than tier 1 media (e.g., hard disks). For example, tier 2 storage devices may include high performance disks such as 15,000 RPM serial attached SCSI (SAS) or Fibre Channel (FC) disks. Tier 3 storage devices may be comprised of comparatively slower and cheaper storage media than either tier 1 or tier 2, such as 7,200 RPM serial ATA (SATA) disks.
Storage arrays are typically used to provide storage space for one or more computer file systems, databases, applications, and the like. For this and other reasons, it is common for storage arrays to be logically partitioned into chunks of storage space, called logical units, or LUs. This allows a unified storage array to appear as a collection of separate file systems, network drives, and/or volumes.
One factor that may limit the performance of a storage array is the performance of each individual storage component. For example, the read access time of a disk storage array may be constrained by the access time of the disk drive from which the data is being read. Read access time of a drive may be affected by physical characteristics of the disk drive including the number of revolutions per minute of the spindle: the faster the spin, the less time it takes for the sector being read to come around to the read/write head.
A large data storage array is an illustrative example. A data storage array may be thought of as a system for managing a large amount of a resource such as disk sectors. Management of the resource may include allocation of a portion the resource in response to allocation requests or relocation of previously allocated resources. In the storage array example, portions of the storage array may be allocated to (e.g., exclusively used by) entities that request such allocation. One issue that may be considered by a SP executing a policy for determining where to store data within the array (e.g., a slice allocation or relocation policy) is how to balance between performance and power consumption of the array.
One capability in some individual disk drives that reduces power consumption is spin down capability. A drive with spin down capability allows power to be shut off from the motor that spins the disk, resulting in power savings. Other types of drives allow disks to be spun at reduced spin rates during periods of low activity. Managing performance, tiering, spin down, and reduced spin rate capability of a data storage array is desirable.
Accordingly, there exists a need for methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system.